home *** CD-ROM | disk | FTP | other *** search
- #include "bbs.h"
-
- static void ShowFlags(void)
- {
- if(strlen(flaglist)==0) AEPutStr("No file flags\r\n");
- else {
- FAEPutStr(flaglist);
- FAEPutStr("\r\n");
- }
- }
-
- char *IsInList(char *s,char *p,int *length);
-
- static int RemoveFile(char *s,char *e)
- {
- int length,error=0;
- char *p;
-
- while(p=IsInList(s,e,&length)) {
- if(s[p-s+length]==' ') length++;
- strcpy(p,p+length);
- error=1;
- }
- return(error);
- }
-
- static void RemoveFileList(char *s)
- {
- char *p;
-
- if(p=strtok(s," ")) {
- do {
- RemoveFile(flaglist,p);
- p=strtok(NULL," ");
- } while(p!=NULL);
- }
- }
-
-
- int AddFlagtoList(char *);
-
- static void FlagFrom(char *s)
- {
- int stat=0,flag=1;
- FILE *fp;
- int i;
- sprintf(GSTR2,"%sdir%d",Conference_Location,MaxDirs);
- if(fp=fopen(GSTR2,"r")) {
- while(fgets(GSTR2,90,fp) && stat!=1) {
- if(GSTR2[0]!=' '&&GSTR2[0]!='\0') {
- i=0; while(GSTR2[i]!='\0' && GSTR2[i]!=' ') { GSTR3[i]=GSTR2[i]; i++; }
- if(i==0) continue;
- GSTR3[i]='\0';
- if(!flag) stat=AddFlagtoList(GSTR3);
- if(flag && !stricmp(GSTR3,s)) {
- flag=0;
- stat=AddFlagtoList(GSTR3);
- }
- }
- }
- if(flag) AEPutStr("Sorry filename not found!\r\n");
- fclose(fp);
- } else MyError(4); //FileListError();
- }
-
-
- int FlagFiles(char *s)
- {
- int stat;
-
- if(s==NULL) ShowFlags();
- Backloop:
- if(s==NULL) {
- AEPutStr("Filename(s) to flag: (F)rom, (C)lear, (Enter)=none? ");
- stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
- if(stat<0) return(stat);
- } else
- strcpy(GSTR1,s);
-
- if(GSTR1[0]!='\0') {
- if((GSTR1[0]=='C'||GSTR1[0]=='c')&&(GSTR1[1]=='\0'||GSTR1[1]==' ')) {
- if(GSTR1[1]==' ') strcpy(GSTR1,GSTR1+2);
- else {
- if(s!=NULL) ShowFlags();
- AEPutStr("Filename(s) to Clear: (*)All, (Enter)=none? ");
- stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
- if(stat<0) return(stat);
-
- if(GSTR1[0]=='\0')
- return(SUCCESS);
- AEPutStr("\r\n");
- }
- strupr(GSTR1);
- if(GSTR1[0]=='*') flaglist[0]='\0';
- else RemoveFileList(GSTR1);
- return(1);
- } else {
- if((GSTR1[0]=='F'||GSTR1[0]=='f')&&(GSTR1[1]=='\0'||GSTR1[1]==' ')) {
- if(GSTR1[1]!=' ') {
- AEPutStr("Filename to start flagging from: ");
- stat=LineInput("",GSTR1,190,KEYBOARD_TIMEOUT);
- if(stat<0) return(stat);
- if(GSTR1[0]=='\0') return(SUCCESS);
- } else strcpy(GSTR1,GSTR1+2);
-
- FlagFrom(GSTR1);
- return(1);
- } else {
- stat=AddFlagtoList(GSTR1);
- if(stat==1) {
- if(s==NULL) goto Backloop;
- else return(FAILURE);
- }
- if(stat==2) return(FAILURE);
- }
- }
- }
- return(SUCCESS);
- }
-